﻿///////////////////////////////////////////////////////////////
// Projet serveur entreprise
// Authors: Pierre Corsini, Guillaume Blanc
// mars 2011
///////////////////////////////////////////////////////////////


using System;
using System.Collections.Generic;

using System.Text;
using System.Security.Permissions;

namespace DLL
{
    public class AdministrateurService : IAdministrateurService
    {
        private AccessDB _db;


        public AdministrateurService()
        {
            this._db = new AccessDB();
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool ajouterConseiller(Conseiller conseiller)
        {
            return _db.ajouterConseiller(conseiller);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool ajouterClient(Client nouveauClient)
        {
            return _db.ajouterClient(nouveauClient);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool supprimerConseiller(int idConseiller)
        {
            return _db.supprimerConseiller(idConseiller);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool supprimerClient(int idClient)
        {
            return _db.supprimerClient(idClient);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool supprimerCompte(int idCompte)
        {
            return _db.supprimerCompte(idCompte);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public List<Conseiller> listeConseiller()
        {
            return _db.extraireConseillers();
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public List<Client> listeClient(int idConseiller)
        {
            return _db.extraireClients(idConseiller);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public List<Compte> listeCompte(int idClient)
        {
            return _db.extraireCompte(idClient);
        }


        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public bool affecterClient(int idClient, int idConseiller)
        {
            return _db.affecterClient(idClient, idConseiller);
        }

        [PrincipalPermission(SecurityAction.Demand, Role = "admin")]
        public List<Client> listeClient()
        {
            return _db.extraireClients();
        }
    }
}
